#include <iostream>
#include <utility>
//不定参数使用
//模板特化
// void xprintf()
// {
//     std::cout << std::endl;
// }

// template<typename T, typename ...Args>
// void xprintf(const T& v, Args&& ...args) //万能引用
// {
//     std::cout << v << " ";
//     if(sizeof ...(args) > 0) //解析参数包个数
//     {
//         xprintf(std::forward<Args>(args)...);//使用完美转发保证类型一致性
//     }
//     else
//     {
//         xprintf();
//     }
// }
// int main()
// {
//     xprintf("张三", 18, "123456", "喜欢游泳");
//     xprintf("李四", 18, "123456", "喜欢玩游戏");
//     xprintf("王五", 18, "123456", "喜欢钓鱼");

//     return 0;
// }

//单例模型：懒汉模式的简单版本实现仅限于C++11
class Singleton
{
public:
    static Singleton& getInstance()
    {
        static Singleton _ins;
        return _ins;
    }
private:
    Singleton() { std::cout << "Singleton()\n"; }
    Singleton(const Singleton& sln) = delete;
    ~Singleton() { std::cout << "~Singleton()\n"; }
};

int main()
{
    Singleton::getInstance();

    return 0;
}